# 这里是66.py文件，包含了所有code_block函数的空实现

def code_block_1():
    print("这是代码块1的输出")
    # 9x9 乘法口诀表
    def print_multiplication_table():
        for i in range(1, 10):
            for j in range(1, i + 1):
                print(f"{j}*{i}={i * j}", end="\t")
            print()  # 每打印完一行换行
    print_multiplication_table()
    pass 
def code_block_2():
    print("这是代码块2的输出")
    def prime_factors(n):
        factors = []
        # 质因数分解
        divisor = 2
        while n > 1:
            while n % divisor == 0:
                factors.append(divisor)
                n //= divisor
            divisor += 1
        return factors
    pass 
    # 输入一个任意正整数
    num = int(input("请输入一个任意正整数: "))
    # 调用函数进行质因数分解
    factors = prime_factors(num)
    # 打印质因数分解结果
    print(f"{num}={'*'.join(map(str, factors))}")
    pass 
def code_block_3():
    print("这是代码块3的输出")
    # 接收用户输入
    while True:
        try:
            # 尝试将输入转换为整数，并验证其是否在有效范围内
            num = int(input("请输入一个不超过6位的正整数: "))
            if 1 <= num <= 999999:
                break  # 输入有效，跳出循环
            else:
                print("输入的数字不在有效范围内，请重新输入。")
        except ValueError:
            # 捕获输入非整数的情况
            print("输入无效，请输入一个正整数。")

    # 转换整数为字符串，以便计算位数和逆序打印
    num_str = str(num)

    # 计算数字的位数
    num_digits = len(num_str)

    # 逆序打印各个数字
    reversed_digits = num_str[::-1]

    # 输出结果
    print(f"该数字是{num_digits}位数。")
    print(f"逆序打印的各位数字为: {reversed_digits}")
    pass 
def code_block_4():
    print("这是代码块4的输出")
    # 获取用户输入
    a = int(input("请输入一个数字 a: "))
    n = int(input("请输入相加的数的个数: "))

    # 初始化结果变量
    s = 0

    # 当前项的值，初始化为 0
    current_term = 0

    # 循环生成每一项并累加到结果中
    for i in range(1, n + 1):
        # 更新当前项的值（例如，对于 a=2, i=1, 2; i=2, 22; i=3, 222 等）
        current_term = current_term * 10 + a
        # 将当前项累加到结果中
        s += current_term

    # 输出结果
    print(f"s = {s}")
    pass 
def code_block_5():
    print("这是代码块5的输出")
    from fractions import Fraction

    def fibonacci_fraction_sum(n):
        # 初始化前两个分数和总和
        fraction_1 = Fraction(2, 1)
        fraction_2 = Fraction(3, 2)
        total_sum = fraction_1 + fraction_2
    
        # 如果只需要计算前两项的和，直接返回
        if n == 1:
            return fraction_1
        elif n == 2:
            return total_sum
    
        # 从第三项开始计算，直到第N项
        for i in range(2, n):
            # 计算当前项的分子和分母
            numerator = fraction_1.numerator + fraction_2.numerator
            denominator = fraction_1.denominator + fraction_2.denominator
            current_fraction = Fraction(numerator, denominator)
        
            # 更新总和
            total_sum += current_fraction
        
            # 更新前两个分数为当前分数和前一个分数
            fraction_1, fraction_2 = fraction_2, current_fraction
    
        return total_sum

    # 从键盘获取N的值
    n = int(input("请输入需要计算的项数N: "))

    # 计算并输出前N项之和
    result = fibonacci_fraction_sum(n)
    print(f"分数序列的前{n}项之和为: {result}")
    pass 
def code_block_6():
    print("这是代码块6的输出")
    import math

    # 遍历可能的整数x（从0开始，可以根据需要调整范围）
    for x in range(1000000):  # 设置一个合理的上限以避免无限循环
        # 检查x + 100是否为完全平方数
        sqrt_100 = math.isqrt(x + 100)  # 计算整数平方根
        if sqrt_100 * sqrt_100 == x + 100:
            # 检查x + 368是否为完全平方数
            sqrt_368 = math.isqrt(x + 368)
            if sqrt_368 * sqrt_368 == x + 368:
                # 如果两个条件都满足，则打印结果
                print(f"满足条件的整数是: {x}")
                break  # 找到答案后退出循环
    pass 
def code_block_7():
    print("这是代码块7的输出")
    def rabbit_pairs(months):
        # 初始化前两个月的兔子对数
        if months == 1:
            return 1
        elif months == 2:
            return 1
    
        # 使用列表来存储每个月的兔子对数，以便可以轻松地访问前两个月的值
        rabbit_count = [1, 1]
    
        # 从第三个月开始计算
        for month in range(2, months):
            # 当前月的兔子对数是前两个月的兔子对数之和
            new_rabbits = rabbit_count[-1] + rabbit_count[-2]
            # 将新计算的兔子对数添加到列表中
            rabbit_count.append(new_rabbits)
    
        # 返回最后一个月的兔子对数
        return rabbit_count[-1]

    # 从键盘获取用户想要查询的月份数
    months = int(input("请输入想要查询的月份数: "))

    # 计算并输出该月的兔子总数
    total_rabbits = rabbit_pairs(months)
    print(f"第{months}个月的兔子总数为: {total_rabbits}对")
    pass 
def code_block_8():
    print("这是代码块8的输出")
    # 定义一个函数来计算3x3矩阵的对角线元素之和
    def diagonal_sum(matrix):
        # 初始化对角线元素之和为0
        sum_diag = 0
    
        # 遍历矩阵的行和列（对于3x3矩阵，范围是0到2）
        for i in range(3):
            # 对角线元素位于行索引和列索引相等的位置
            sum_diag += matrix[i][i]
        
        return sum_diag

    # 从用户那里获取3x3矩阵的输入
    matrix = []
    print("请输入一个3x3矩阵（每行三个数字，用空格分隔）:")
    for i in range(3):
        row = list(map(int, input().split()))
        # 确保用户输入了正确数量的元素
        if len(row) != 3:
            print(f"第{i+1}行应该包含3个数字，请重新输入。")
            i -= 1  # 重新输入当前行
        else:
            matrix.append(row)

    # 计算并输出对角线元素之和
    result = diagonal_sum(matrix)
    print(f"矩阵对角线元素之和为: {result}")
    pass 
def code_block_9():
    print("这是代码块9的输出")
    def rotate_list(nums, m):
        # 确保m不大于列表长度
        m = m % len(nums)
        # 使用切片和拼接来旋转列表
        rotated_nums = nums[-m:] + nums[:-m]
        return rotated_nums

    # 从用户那里获取输入
    n = int(input("请输入整数的个数n: "))
    nums = []
    print(f"请输入{n}个整数（用空格分隔）:")
    nums = list(map(int, input().split()))

    # 确保用户输入了正确数量的整数
    if len(nums) != n:
        print("输入的整数数量不正确，请重新运行程序并输入正确的数量。")
    else:
        # 从用户那里获取移动的位置m
        m = int(input("请输入移动的位置m: "))
        # 调用函数旋转列表并输出结果
        rotated_nums = rotate_list(nums, m)
        print(f"旋转后的列表为: {rotated_nums}")
    pass 
def code_block_10():
    print("这是代码块10的输出")
    def series_sum(n):
        if n <= 0:
            raise ValueError("n必须是一个正整数")
    
        total = 0.0
        if n % 2 == 0:  # n是偶数
            for i in range(2, n + 1, 2):
                total += 1 / i
        else:  # n是奇数
            for i in range(1, n + 1, 2):
                total += 1 / i
    
        return total
    
    # 测试函数
    n = int(input("请输入一个正整数n: "))
    result = series_sum(n)
    print(f"数列的和为: {result}")